home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Burning & Media / GB-PVR 1.2.13 / GBPVR10213.msi / Cabs.w1.cab / guide.js16 < prev    next >
Text File  |  2007-02-14  |  7KB  |  247 lines

  1. var rowHeight = 0;
  2. var rowHeightRule = 0;
  3. var infoRule = -1;
  4.  
  5. var CurrentExpandedElement = '[NONE]';
  6. var CurrentElementOrigWidth;
  7. var CurrentElementOrigZ;
  8. var CurrentElementClass;
  9. var CurrentElementBackground;
  10. var CurrentElementOrigLeft;
  11. var ExpandedListingClassName = 'expandedListing';
  12. var CurrentElementOrigBkgdColor;
  13. /* var computeStyle; */
  14. var ExpWidth;
  15. var ExpMargin;
  16.  
  17. function ClearText(e) {
  18.  
  19.     /* move selection to a DIV that is moved off the visible screen area */
  20.     /* then move selection back to the original element. */
  21.     /* this forces any selected text to be unselected */
  22.  
  23.     document.getElementById('UnselectAll').select();
  24.     e.focus();
  25. }
  26.  
  27. function addEvent( obj, type, fn ) {
  28.   if ( obj.attachEvent ) {
  29.     obj["e"+type+fn] = fn;
  30.     obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
  31.     obj.attachEvent( "on"+type, obj[type+fn] );
  32.   } else
  33.     obj.addEventListener( type, fn, false );
  34. }
  35. function removeEvent( obj, type, fn ) {
  36.   if ( obj.detachEvent ) {
  37.     obj.detachEvent( "on"+type, obj[type+fn] );
  38.         obj[type+fn] = null;
  39.   } else
  40.     obj.removeEventListener( type, fn, false );
  41. }
  42.  
  43. function expandContract() {
  44.     /* Expands/Contracts show listing */
  45.  
  46.     /* must assign this to Element for Firefox's sake */
  47.     var Element = this;
  48.  
  49.     if (CurrentExpandedElement == Element) {
  50.         /* return to original size */
  51.         Element.className = CurrentElementClass;
  52.         Element.style.marginLeft = CurrentElementOrigLeft;
  53.         Element.style.width = CurrentElementOrigWidth;
  54.         Element.style.backgroundColor = CurrentElementOrigBkgdColor;
  55.         Element.style.zIndex = CurrentElementOrigZ;
  56.         
  57.         CurrentExpandedElement = '[NONE]';
  58.         ClearText(Element);
  59.         return;
  60.     } else if (CurrentExpandedElement != '[NONE]') {
  61.         /* return other element to original size before expanding this one */
  62.         CurrentExpandedElement.className = CurrentElementClass;
  63.         CurrentExpandedElement.style.marginLeft = CurrentElementOrigLeft;
  64.         CurrentExpandedElement.style.width = CurrentElementOrigWidth;
  65.         CurrentExpandedElement.style.backgroundColor = CurrentElementOrigBkgdColor;
  66.         CurrentExpandedElement.style.zIndex = CurrentElementOrigZ;
  67.     }
  68.  
  69.     /* expand this element */
  70.     CurrentExpandedElement = Element;
  71.     CurrentElementClass = Element.className;
  72.     CurrentElementOrigLeft = Element.style.marginLeft;
  73.     CurrentElementOrigWidth = Element.style.width;
  74.     CurrentElementOrigZ = Element.style.zIndex;
  75.     CurrentExpandedElement.style.backgroundColor = getStyle(Element,'background-color');
  76.  
  77.     Element.className = ExpandedListingClassName;
  78.       Element.style.width = ExpWidth;/* '93%'; */
  79.        Element.style.marginLeft = ExpMargin;/* '7%'; */
  80.      Element.style.backgroundColor = CurrentElementOrigBkgdColor;
  81.     ClearText(Element);
  82. }
  83.  
  84. function makeSmaller(direction) {
  85.  
  86.     var selector;
  87.     var infoSelector;
  88.     var offset = 1;
  89.     if (direction == '-') {
  90.         offset = -1;
  91.     }
  92.     
  93.     if (offset > 0) {
  94.         if (infoRule < 0) {
  95.             for (var i = 1; i <= 10000; i++) {
  96.                 infoSelector = document.styleSheets[0].rules[i];
  97.                 if (infoSelector.selectorText == '.INFO') {
  98.                     infoRule = i;
  99.                     i = 20000;
  100.                 }
  101.             }
  102.         } else {
  103.             infoSelector = document.styleSheets[0].rules[infoRule];
  104.         }
  105.     }
  106.     
  107.     if (rowHeight < 1) {
  108.         for (var r = 1; r <= 10000; r++) {
  109.             selector = document.styleSheets[0].rules[r];
  110.             if (selector.selectorText == '.guideRow') {
  111.                 rowHeight = parseInt(selector.style.height);
  112.                 rowHeightRule = r;
  113.                 r = 20000;
  114.             }
  115.         }
  116.     } else {
  117.         selector = document.styleSheets[0].rules[rowHeightRule];
  118.     }
  119.     
  120.     rowHeight = rowHeight + offset;
  121.     selector.style.height = rowHeight + 'px';
  122.     if (offset > 0) {
  123.         infoSelector.style.width = '100%';
  124.     }
  125. }
  126.  
  127. function ToggleVisibility() {
  128.  
  129.     var Element = document.getElementById('FIXED_DIV');
  130.     var maxHeight = 40;
  131.     var sourceLinks = document.getElementById('REMINDER_DIV');
  132.     var DT = document.getElementById('DateTime');
  133.     var currentHeight = parseInt(sourceLinks.scrollHeight);
  134.     
  135.     if (currentHeight < maxHeight) {
  136.         /* no scroll bars visible, so nothing to do */
  137.         return
  138.     }
  139.  
  140.     /* dynamically copy the list of reminders to the new popup window */
  141.     Element.innerHTML = sourceLinks.innerHTML;
  142.  
  143.     var remLabel = document.getElementById('REMINDER_LABEL');
  144.     
  145.     if(Element.style.visibility == 'visible') {
  146.  
  147.       Element.style.visibility = 'hidden'; 
  148.       remLabel.title = 'click to expand reminders';    /* change the tooltip */
  149.  
  150.     } else {
  151.  
  152.         var oElement = Element;
  153.         var borderHeight = 1;
  154.  
  155.         if(window.getComputedStyle) {
  156.             Element.style.left = window.getComputedStyle(sourceLinks,null).left;
  157.             borderHeight = parseInt(window.getComputedStyle(oElement,null).borderBottomWidth);
  158.         } else if (oElement.currentStyle) {
  159.             Element.style.left = sourceLinks.currentStyle.left;
  160.             borderHeight = parseInt(oElement.currentStyle.borderBottomWidth);
  161.         }
  162.  
  163.         Element.style.height = currentHeight + borderHeight;
  164.         Element.style.visibility = 'visible';
  165.         remLabel.title = 'click to hide reminders';    /* change the tooltip */
  166.     }
  167. }
  168.  
  169. function hideReminders() {
  170.     document.getElementById('FIXED_DIV').style.visibility = 'hidden';
  171. }
  172.  
  173. function getOuterHTML(obj){
  174.  
  175.  temp=document.getElementById(obj).cloneNode(true)
  176.  document.getElementById('tempDiv').appendChild(temp)
  177.  outer=document.getElementById('tempDiv').innerHTML
  178.  document.getElementById('tempDiv').innerHTML=""
  179.  return outer
  180.  
  181. }
  182.  
  183. /* alternative to hard-coding an onload statement in the body tag */
  184. /* this writes our custom reminder toggling function as a javascript link in the appropriate tag */
  185. /* doing everything this way allows the source HTML to remain completely generic other than the ID tags */
  186. /*     document.getElementById('reminderLink').href = "javascript:ToggleVisibility()"; */
  187.  
  188.  
  189. function StartUp() {
  190.  
  191.     var allDivTags = document.getElementsByTagName('div');
  192.  
  193.     for (var i=0;i<allDivTags.length;i++) {
  194.         if (allDivTags[i].className.substring(0,7) == 'listing') {
  195.             addEvent(allDivTags[i],"dblclick",expandContract);
  196.         }
  197.     }
  198.     
  199.     GetExpandedCellSize();
  200. }
  201.  
  202. function GetExpandedCellSize() {
  203.     var ThisStyleSheet = document.styleSheets[1];
  204.     var AllRules;
  205.  
  206.     if (ThisStyleSheet.cssRules) {
  207.         /* firefox */
  208.         AllRules = ThisStyleSheet.cssRules;
  209.     } else {
  210.         /* IE */
  211.         AllRules = ThisStyleSheet.rules;
  212.     }
  213.     var NumRules = AllRules.length;
  214.  
  215.     for (i=NumRules-1;i >=0;i--) {
  216.         if (AllRules[i].selectorText == '.expandedListing') {
  217.             var thisRule = AllRules[i];
  218.             ExpWidth = thisRule.style['width'];
  219.             ExpMargin = thisRule.style['marginLeft'];
  220.             i = -1;
  221.         }
  222.     }
  223. }
  224.  
  225. function HideLoadingScreen() {
  226.     var loadingScreen = document.getElementById('loading');
  227.     loadingScreen.style.display = 'none';
  228. }
  229.  
  230. function getStyle(oElm, strCssRule){
  231. /*
  232.   Example call of the function:
  233.   getStyle(document.getElementById("container"), "font-size");
  234. */
  235.   var strValue = "";
  236.   if(document.defaultView && document.defaultView.getComputedStyle){
  237.     strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
  238.   }
  239.   else if(oElm.currentStyle){
  240.     strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
  241.       return p1.toUpperCase();
  242.     });
  243.     strValue = oElm.currentStyle[strCssRule];
  244.   }
  245.   return strValue;
  246. }
  247.